builder: Allow <property bind /> for objects
authorBenjamin Otte <otte@redhat.com>
Wed, 18 Dec 2019 15:47:31 +0000 (16:47 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 30 May 2020 14:46:27 +0000 (10:46 -0400)
Previously, object properties had to always be set to a value.
This now works without it.

gtk/gtkbuilder.c

index c728ba6116eb47d15f547d7baa6255628ca87b41..3f8ba5329ef9e4728758b1d98c81a0d4dc46cb5f 100644 (file)
@@ -527,7 +527,14 @@ gtk_builder_get_parameters (GtkBuilder         *builder,
       const char *property_name = g_intern_string (prop->pspec->name);
       GValue property_value = G_VALUE_INIT;
 
-      if (G_IS_PARAM_SPEC_OBJECT (prop->pspec) &&
+      if (prop->bound && (!prop->text || prop->text->len == 0))
+        {
+          /* Ignore properties with a binding and no value since they are
+           * only there for to express the binding.
+           */
+          continue;
+        }
+      else if (G_IS_PARAM_SPEC_OBJECT (prop->pspec) &&
           (G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != GDK_TYPE_PIXBUF) &&
           (G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != GDK_TYPE_TEXTURE) &&
           (G_PARAM_SPEC_VALUE_TYPE (prop->pspec) != GDK_TYPE_PAINTABLE) &&
@@ -564,13 +571,6 @@ gtk_builder_get_parameters (GtkBuilder         *builder,
               continue;
             }
         }
-      else if (prop->bound && (!prop->text || prop->text->len == 0))
-        {
-          /* Ignore properties with a binding and no value since they are
-           * only there for to express the binding.
-           */
-          continue;
-        }
       else if (!gtk_builder_value_from_string (builder, prop->pspec,
                                                prop->text->str,
                                                &property_value,